草庐IT

Pythonlibs3 CMake 和 macOS

全部标签

c++ - cmake install(FILES ...) 似乎不起作用

我有一个用C++编写的项目,我正在使用cmake来构建它。该项目有许多子项目,其中一个是其他子项目所需的库。我可以编译.so并将其移动到构建目录添加_库,和安装(目标...)但是我还需要将lib的头文件安装在构建目录的include目录下。我使用install(FILES...)来完成它,但它似乎根本没有做任何事情。为了演示它,我通过qtcreator创建了一个测试项目,&lstestCMakeLists.txtempty.hhmain.cpp$cattest/CMakeLists.txtproject(test)cmake_minimum_required(VERSION2.8)in

c++ - Bazel 在文件通配方面是否存在与 CMake 相同的问题?

我正在开始一个新项目,需要选择一个构建系统。我讨厌必须手动将每个C++源文件添加到我的构建规则中,因为这种事情应该在2016年之前实现自动化,并且在重构时会导致额外的繁忙工作(重命名头文件中的类、源文件和构建系统文件...)。当我看到这篇文章时,我开始使用CMake递归文件通配:SpecifysourcefilesgloballywithGLOB?这表明globbing是邪恶的,因为CMake使用两个阶段进行构建(cmake和make),而在正常使用中用户只重新运行第二阶段(make)。乍一看,Bazel还允许文件通配。与Bazel一起使用是邪恶的吗?在代码库上运行find这样的扩展问

c++ - 如何从一个配置中排除 CMake 目标?

我最近向CMake项目添加了一个模块,该项目依赖于我仅针对发布CRT编译的库。在CMakeLists.txt中看起来像这样:IF(WIN32)ADD_LIBRARY(mymoduleMODULE${MY_LIBRARY_FILES})TARGET_LINK_LIBRARIES(mymodulelibVendor)INSTALL(TARGETSmymoduleLIBRARY)ENDIF(WIN32)如果我尝试使用调试设置在MSVC中编译此模块,编译将失败。所以我想做的是将它排除在调试配置中的编译和安装之外。在发布配置中,它将照常使用。可以用CMake做到这一点吗?

c++ - 是否可以用 CMake 将某些符号替换为不同的符号?

我正在尝试使用CMake制作可执行文件。此可执行文件需要位于项目中的文件的完整路径。intmain(){std::ifstream("fullpath_to_file");//....}我认为如果CMake可以用用户指定的字符串替换源代码中的某些符号,就不需要硬编码完整路径了。例如,如果CMake可以将源代码(cpp)中的${CMAKE_PROJECT_DIR}替换为${PROJECT_SOURCE_DIR}之类的cmake变量,那么我就可以这样编写源代码。intmain(){std::ifstream("${CMAKE_PROJECT_DIR}/input/my_input.txt"

c++ - CMAKE 链接到系统库

我们想用CMAKE系统构建一个共享库。它是这样的:lib/CMakeLists.txtsrc/CMakeLists.txtmodule/CMakeLists.txtmodule1.cfoo.cmodule1.c需要一些标准共享库,如librt。我们有add_library(modulemodule1.c)target_link_libraries(modulert)在module/子目录中。但仍然会收到来自librt的未知错误。 最佳答案 如果librt与-lrt链接,那么在CMake中您可以这样链接它:target_link_li

c++ - 自动生成Find Cmake并安装导入

有什么方法可以自动创建FindXXX.cmake,其中XXX是我的Cmake项目?我看到他们手动创建FindXXX.cmake的许多项目,但我相信可以自动创建它。而且,我应该在Linux上的什么位置安装我的项目?谢谢! 最佳答案 看看CMake'sprojectconfigfile机制(连同CMakePackageConfigHelper模块;您可能还想看看thiswikipage)。查找脚本对于查找CMake本身不了解的依赖项最有用。另一方面,如果依赖项也是使用CMake构建的,您可以让CMake自动为您生成一个项目配置文件,作为

c++ - cmake找不到静态库

g++(Ubuntu/Linaro4.5.2-8ubuntu4)4.5.2我有一个名为sdpAPI.a的静态库我正在尝试使用cmake将我的cpp文件链接到它。我的CMakeLists.txt看起来像这样?CMAKE_MINIMUM_REQUIRED(VERSION2.8)PROJECT(demo_projectCXX)IF(CMAKE_COMPILER_IS_GNUCXX)SET(CMAKE_C_FLAGS"-Wall-Wextra-Wunreachable-code-O0-D_DEBUG-ggdb-m32")ENDIF(CMAKE_COMPILER_IS_GNUCXX)INCLUD

C++集群聊天服务器 数据模块+业务模块+CMake构建项目 笔记 (上)

跟着施磊老师做C++项目,施磊老师_腾讯课堂(qq.com)本文在此篇博客的基础上继续实现数据模块和业务模块代码:C++集群聊天服务器网络模块+业务模块+CMake构建项目笔记(上)-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/135991635?spm=1001.2014.3001.5501一、mysql项目数据库和表的设计myql项目数据库和表的设计-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/135981407?spm=1001.2014

C++ 与 git 和 CMake : How to build submodules with specific parameters?

考虑一个在git存储库中组织的C++项目。假设git存储库有一个子模块,(super)项目依赖于该子模块构建了一个库。如果(super)项目不仅依赖于库,还依赖于使用特定(CMake)参数构建的库,那么如何确保在构建(super)项目时使用这些参数构建子模块? 最佳答案 必须将构建选项(如MYLIB_WITH_SQLITE)添加到库的接口(interface)中,即在老式配置的情况下添加到MYLIB_DEFINITIONS变量中-模块,或者到INTERFACE_COMPILE_DEFINITIONS属性,如果库使用install(E

c++ - 使用 GoogleTest 和 CMake 对 C 库进行单元测试

我似乎无法获得正在构建的库以正确链接到我的GoogleTest单元测试二进制文件。它在构建的链接阶段失败:LinkingCXXexecutable../../target/unit_testscd/Users/ebenoist/development/mylib/build/test&&/usr/local/Cellar/cmake/2.8.12.2/bin/cmake-Ecmake_link_scriptCMakeFiles/unit_tests.dir/link.txt--verbose=0Undefinedsymbolsforarchitecturex86_64:"a_funct